// ========================================================================================================================
// 数据切换层：用于将服务器的数据修改以便渲染 以及 初始化相应的对象
// ========================================================================================================================
/**
 * 默认：生成对话实例时
 * 缺省的角色列表中存在：
 * 1、旁白 { Id: 0, Type: 3}
 */

var util = require('../utils/util.js')
var api = require('../api/index.js')

// 对话对象（详情）：对话内容 + 作者信息 + 状态等
var TalkVO = {
  // 格式化:用于渲染页面使用
  format: function () {
  },

  generate: function () {
    var that = this;
    return {
      Id: 0,
      SId: '',
      Status: 1, // 状态 1.草稿 2.已发布  3.禁用  4.已删除
      ReadAuth: 1, // 阅读权限 0,1.公开，所有人可见 2.不公开 3.私密
      RecommendStatus: 1, //推荐状态：0，1.未推荐  2.已推荐
      RecommendAt: 0,
      CommentStatus: 1, // 1.初始可以评论  2.禁止评论
      AuditStatus: 1, // 1.未审 2.已审通过  3.已审禁用
      AuditAt: 0,

      AuditOpUserId: 0,

      UserId: 0,
      UUserId: 0,
      User: null,
      WxSaId: 0,

      PublishAt: 0,

      RNum: 0, // 阅读数量
      VisitorNum: 0, // 访问微信用户数
      LikeNum: 0, // 点赞数量
      DiscussNum: 0, // 评论数量
      FavoriteNum: 0, // 收藏数量
      Floor: 0, // 评论楼层数

      Type: 0, //0，1.美文 2.朋友圈语音 3.套件分类

      PublishItem: null,
      DraftItem: TalkBasicVO.generate(),

      CreateAt: 0,
      UpdateAt: 0,

      Version: 0
    }
  }
};

// 对话内容：封面 + 摘要 + 段落 + 角色列表 等
var TalkBasicVO = {
  // 格式化:用于渲染页面使用
  format: function () {
  },

  generate: function () {
    // 旁白
    var role = RoleVO.generate({Id: 0, SaveType: 2, Type: 3});
    return {
      Title: '', // 标题
      Desc: '', // 描述
      TopPhotos: [], // 封面 ImageFileVO[]
      Section: [
        {
          Id: 0,
          Type: 0, // 类型： 待定 TODO
          Role: null, // 默认角色：我
          Photos: [], // 图片 ImageFileVO[]
          Audios: [], //  音频 AudioFileVO[]
          Videos: [], // 视频 VideImageFileVO[]
          Contents: [], // 文字 string [] 
        }
      ], // 段落内容
      Roles: [role], // 角色列表

      Tags: [], // 标签数组
      CategoryId: 0, // 分类id

      CreateAt: 0,
      UpdateAt: 0,

      Version: 0
    } 
  }
};

// 段落内容
var AContentVO = {
  // 格式化:用于渲染页面使用
  format: function () {
  },

  generate: function () {
    return {
      Id: 0,
      Type: 1, // 类型： 1、文字
      Role: null, // 角色
      Photos: [], // 图片 ImageFileVO[]
      Audios: [], //  音频 AudioFileVO[]
      Videos: [], // 视频 VideImageFileVO[]
      Contents: [], // 文字 string [] 
    }
  }
};

var RoleVO = {
  // 格式化:用于渲染页面使用
  format: function (roleVO) {
  },
  generate: function (roleVO) {
    roleVO = roleVO || {}
    var authVO = api.getCacheOfAuthVO();
    var uuserId = authVO ? authVO.UUserId : 0;
    return {
      Id: 0,
      UUserId: parseInt(roleVO.UUserId || uuserId),
      TalkId: parseInt(roleVO.TalkId || 0), // 所属对话id
      SaveType: parseInt(roleVO.SaveType || 2),  //1.故事  2.对话  3.常用角色
      Name: roleVO.Name || '', // 角色名称
      Type: roleVO.Type || 2, // 角色类型   1:主角   2:配角   3:旁白
      Avatar: roleVO.Avatar || null, // 角色头像 ImageFileVO
      QOrder: 0
    }
  }
};

module.exports = {
  TalkVO: TalkVO,
  TalkBasicVO: TalkBasicVO,
  AContentVO: AContentVO,
  RoleVO: RoleVO
}